#include "dataset.h"
#include "image.h"
#include "network.h"
#include "print.h"
#include "dcmfactory.h"


std::shared_ptr<IDataSet>
DCMFactory::CreateDataSetInstance()
{
    return std::make_shared<DataSet>();
}

std::shared_ptr<IImage>
DCMFactory::CreateImageInstance()
{
    return std::make_shared<Image>();
}

std::shared_ptr<IImage>
DCMFactory::CreateImageInstance(
    const std::string& aDCMFile
)
{
    return std::make_shared<Image>(aDCMFile);
}

std::shared_ptr<IImage>
DCMFactory::CreateImageInstance(
    std::shared_ptr<IDataSet>  aDataSet
)
{
    return std::make_shared<Image>(aDataSet);
}

std::shared_ptr<INetwork>
DCMFactory::CreateNetworkInstance()
{
    return std::make_shared<Network>();
}

std::shared_ptr<IDCMPrint>
DCMFactory::CreatePrintInstance(
    const std::string& aFont
)
{
    return std::make_shared<DCMPrint>(aFont);
}
